package com.sitech.openapi.service;


import com.sitech.openapi.domain.*;
import com.sitech.openapi.mapper.QryCustInfoMapper;
import com.sitech.openapi.utils.DateUtil;
import com.sitech.openapi.utils.NumberUtil;
import com.sitech.openapi.utils.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
 * add by wangdj 2018/11/30
 * 关于服务一致性二期优化工作支撑--电子发票和已订购业务需求
 */
@Service
public class QryCustInfoServiceImpl implements QryCustInfoService {
    @Autowired
    private QryCustInfoMapper qryCustInfoMapper;

    /**
     * 获取客户信息
     * @param serialNumber
     * @param custType
     * @param lanId
     * @return
     * @throws ParseException
     */
    @Override
    public ECCustomer getECCustomerInfo(String serialNumber, String custType, String lanId){

        Map<String,String> inMap = new HashMap<String,String>();
        inMap.put("accNbr",serialNumber);
        inMap.put("lanId",lanId);
        inMap.put("custType",custType);
        Map<String,String> outMap = qryCustInfoMapper.getCustInfo(inMap);
        if(StringUtils.isEmpty(outMap)){
            throw new RuntimeException("未查询到该客户信息，请核查查询信息是否正确");
        }
        ECCustomer ecCustomer = new ECCustomer();

        if(StringUtil.isNotEmptyOrNull(outMap.get("CUSTID"))){
            Long custId = NumberUtil.getLongFromObj(outMap.get("CUSTID"));
            ecCustomer.setCustId(custId);
        }else{
            throw new RuntimeException("客户ID不存在，请核查查询信息是否正确");
        }
        if(StringUtil.isNotEmptyOrNull(outMap.get("CUSTNAME"))){
            ecCustomer.setCustName(StringUtil.obj2Str(outMap.get("CUSTNAME")));
        }

        if(StringUtil.isNotEmptyOrNull(outMap.get("CUSTNUMBER"))){
            ecCustomer.setCustNumber(StringUtil.obj2Str(outMap.get("CUSTNUMBER")));
        }

        if(StringUtil.isNotEmptyOrNull(outMap.get("CUSTADDR"))){
            ecCustomer.setCustAddr(StringUtil.obj2Str(outMap.get("CUSTADDR")));
        }
        ecCustomer.setCustType(custType);
        if(StringUtil.isNotEmptyOrNull(outMap.get("CUSTSUBTYPE"))){
            ecCustomer.setCustSubType(StringUtil.obj2Str(outMap.get("CUSTSUBTYPE")));
        }

        if(StringUtil.isNotEmptyOrNull(outMap.get("CUSTAREAGRADE"))){
            ecCustomer.setCustAreaGrade(StringUtil.obj2Str(outMap.get("CUSTAREAGRADE")));
        }

        if(StringUtil.isNotEmptyOrNull(outMap.get("ENTERDATE"))){
            String enterDate = StringUtil.obj2Str(outMap.get("ENTERDATE"));
            ecCustomer.setEnterDate(formatDateTime(enterDate));
        }

        if(StringUtil.isNotEmptyOrNull(outMap.get("INDUSTRYTYPEID"))){
            ecCustomer.setIndustryTypeId(NumberUtil.intParseInt(outMap.get("INDUSTRYTYPEID")));
        }
        //暂时不知
        ecCustomer.setSecrecyLevel("");

        ecCustomer.setCustControlLevel("");

        //ecCustomer.setIsInstead(1);

        //ecCustomer.setIsRealname(1);

        if(StringUtil.isNotEmptyOrNull(outMap.get("STATUSCD"))){
            ecCustomer.setStatusCd(StringUtil.obj2Str(outMap.get("STATUSCD")));
        }

        if(StringUtil.isNotEmptyOrNull(outMap.get("STATUSDATE"))){
            String statusDate = StringUtil.obj2Str(outMap.get("STATUSDATE"));
            ecCustomer.setStatusDate(formatDateTime(statusDate));
        }

        if(StringUtil.isNotEmptyOrNull(outMap.get("REMARK"))){
            ecCustomer.setRemark(StringUtil.obj2Str(outMap.get("REMARK")));
        }

        if(StringUtil.isNotEmptyOrNull(outMap.get("REGIONID"))){
            ecCustomer.setRegionId(NumberUtil.getIntFromObj(outMap.get("REGIONID")));
        }

        ecCustomer.setServiceLevel("");
        List<Map<String,String>> contactInfoList = qryCustInfoMapper.getContractInfos(inMap);
        int contactInfoListSize = contactInfoList.size();
        if(contactInfoListSize>0){
            List<ContactsInfo> contactsInfos = new ArrayList<ContactsInfo>();
            for(int i=0;i<contactInfoListSize;i++){
                ContactsInfo contactsInfo = new ContactsInfo();
                if(!StringUtils.isEmpty(contactInfoList.get(i).get("CONTACTID"))){
                    String contactId = String.valueOf(contactInfoList.get(i).get("CONTACTID")).toString();
                    contactsInfo.setContactId(Integer.getInteger(contactId));
                }
                if(StringUtil.isNotEmptyOrNull(contactInfoList.get(i).get("EXTCONTACTID"))){
                    contactsInfo.setExtContactId(StringUtil.obj2Str(contactInfoList.get(i).get("EXTCONTACTID")));
                }

                if(StringUtil.isNotEmptyOrNull(contactInfoList.get(i).get("CONTACTTYPE"))){
                    contactsInfo.setContactType(StringUtil.obj2Str(contactInfoList.get(i).get("CONTACTTYPE")));
                }

                if(StringUtil.isNotEmptyOrNull(contactInfoList.get(i).get("CONTACTNAME"))){
                    contactsInfo.setContactName(StringUtil.obj2Str(contactInfoList.get(i).get("CONTACTNAME")));
                }
                if(StringUtil.isNotEmptyOrNull(contactInfoList.get(i).get("CONTACTGENDER"))){
                    contactsInfo.setContactGender(StringUtil.obj2Str(contactInfoList.get(i).get("CONTACTGENDER")));
                }

                if(StringUtil.isNotEmptyOrNull(contactInfoList.get(i).get("CONTACTADDR"))){
                    contactsInfo.setContactAddr(StringUtil.obj2Str(contactInfoList.get(i).get("CONTACTADDR")));
                }

                if(StringUtil.isNotEmptyOrNull(contactInfoList.get(i).get("CONTACTEMPLOYER"))){
                    contactsInfo.setContactEmployer(StringUtil.obj2Str(contactInfoList.get(i).get("CONTACTEMPLOYER")));
                }

                if(StringUtil.isNotEmptyOrNull(contactInfoList.get(i).get("HOMEPHONE"))){
                    contactsInfo.setHomePhone(StringUtil.obj2Str(contactInfoList.get(i).get("HOMEPHONE")));
                }

                if(StringUtil.isNotEmptyOrNull(contactInfoList.get(i).get("OFFICEPHONE"))){
                    contactsInfo.setOfficePhone(StringUtil.obj2Str(contactInfoList.get(i).get("OFFICEPHONE")));
                }

                if(StringUtil.isNotEmptyOrNull(contactInfoList.get(i).get("MOBILEPHONE"))){
                    contactsInfo.setMobilePhone(StringUtil.obj2Str(contactInfoList.get(i).get("MOBILEPHONE")));
                }

                if(StringUtil.isNotEmptyOrNull(contactInfoList.get(i).get("CONTACTDESC"))){
                    contactsInfo.setContactDesc(StringUtil.obj2Str(contactInfoList.get(i).get("CONTACTDESC")));
                }

                if(StringUtil.isNotEmptyOrNull(contactInfoList.get(i).get("EMAIL"))){
                    contactsInfo.seteMail(StringUtil.obj2Str(contactInfoList.get(i).get("EMAIL")));
                }

                if(StringUtil.isNotEmptyOrNull(contactInfoList.get(i).get("POSTCODE"))){
                    contactsInfo.setPostcode(StringUtil.obj2Str(contactInfoList.get(i).get("POSTCODE")));
                }

                if(StringUtil.isNotEmptyOrNull(contactInfoList.get(i).get("POSTADDR"))){
                    contactsInfo.setPostAddr(StringUtil.obj2Str(contactInfoList.get(i).get("POSTADDR")));
                }

                if(StringUtil.isNotEmptyOrNull(contactInfoList.get(i).get("FAX"))){
                    contactsInfo.setFax(StringUtil.obj2Str(contactInfoList.get(i).get("FAX")));
                }

                if(StringUtil.isNotEmptyOrNull(contactInfoList.get(i).get("STATUSCD"))){
                    contactsInfo.setStatusCd(StringUtil.obj2Str(contactInfoList.get(i).get("STATUSCD")));
                }

                if(StringUtil.isNotEmptyOrNull(contactInfoList.get(i).get("STATUSDATE"))){
                    String statusDate = StringUtil.obj2Str(contactInfoList.get(i).get("STATUSDATE"));
                    contactsInfo.setStatusDate(formatDateTime(statusDate));
                }

                if(StringUtil.isNotEmptyOrNull(contactInfoList.get(i).get("QQCODE"))){
                    contactsInfo.setQqCode(StringUtil.obj2Str(contactInfoList.get(i).get("QQCODE")));
                }

                if(StringUtil.isNotEmptyOrNull(contactInfoList.get(i).get("WXCODE"))){
                    contactsInfo.setWxCode(StringUtil.obj2Str(contactInfoList.get(i).get("WXCODE")));
                }

                if(StringUtil.isNotEmptyOrNull(contactInfoList.get(i).get("YXCODE"))){
                    contactsInfo.setYxCode(StringUtil.obj2Str(contactInfoList.get(i).get("YXCODE")));
                }
                if(StringUtil.isNotEmptyOrNull(contactInfoList.get(i).get("UNSUITABLECONTACTTIME"))){
                    String unsuitAbleContactTime = StringUtil.obj2Str(contactInfoList.get(i).get("UNSUITABLECONTACTTIME"));
                    contactsInfo.setUnsuitableContactTime(formatDateTime(unsuitAbleContactTime));
                }
                contactsInfos.add(contactsInfo);
            }
            ecCustomer.setContactsInfos(contactsInfos);
        }
        List<Map<String,String>> partyCertInfoList = qryCustInfoMapper.getPartyCertInfos(inMap);
        int partyCertInfoListSize = partyCertInfoList.size();
        if(partyCertInfoListSize>0){
            List<PartyCert> partyCerts = new ArrayList<PartyCert>();
            for(int i=0;i<partyCertInfoListSize;i++){
                PartyCert partyCert = new PartyCert();

                if(StringUtil.isNotEmptyOrNull(partyCertInfoList.get(i).get("ISREALNAMECERT"))){
                    partyCert.setIsRealnameCert(StringUtil.obj2Str(partyCertInfoList.get(i).get("ISREALNAMECERT")));
                }
                if(StringUtil.isNotEmptyOrNull(partyCertInfoList.get(i).get("CERTTYPE"))){
                    partyCert.setCertType(StringUtil.obj2Str(partyCertInfoList.get(i).get("CERTTYPE")));
                }
                if(StringUtil.isNotEmptyOrNull(partyCertInfoList.get(i).get("CERTORG"))){
                    partyCert.setCertOrg(StringUtil.obj2Str(partyCertInfoList.get(i).get("CERTORG")));
                }
                if(StringUtil.isNotEmptyOrNull(partyCertInfoList.get(i).get("CERTADDR"))){
                    partyCert.setCertAddr(StringUtil.obj2Str(partyCertInfoList.get(i).get("CERTADDR")));
                }
                if(StringUtil.isNotEmptyOrNull(partyCertInfoList.get(i).get("CERTNUM"))){
                    partyCert.setCertNum(StringUtil.obj2Str(partyCertInfoList.get(i).get("CERTNUM")));
                }
                if(StringUtil.isNotEmptyOrNull(partyCertInfoList.get(i).get("CHECKER"))){
                    partyCert.setChecker(NumberUtil.getIntFromObj(partyCertInfoList.get(i).get("CHECKER")));
                }
                if(StringUtil.isNotEmptyOrNull(partyCertInfoList.get(i).get("CHECKTIME"))){
                    String checkTime = StringUtil.obj2Str(partyCertInfoList.get(i).get("CHECKTIME"));
                    partyCert.setCheckTime(formatDateTime(checkTime));
                }
                if(StringUtil.isNotEmptyOrNull(partyCertInfoList.get(i).get("CHECKRESULT"))){
                    partyCert.setCertCheckResult(StringUtil.obj2Str(partyCertInfoList.get(i).get("CHECKRESULT")));
                }
                if(StringUtil.isNotEmptyOrNull(partyCertInfoList.get(i).get("EFFDATE"))){
                    String effDate = StringUtil.obj2Str(partyCertInfoList.get(i).get("EFFDATE"));
                    partyCert.setEffDate(formatDateTime(effDate));
                }
                if(StringUtil.isNotEmptyOrNull(partyCertInfoList.get(i).get("EXPDATE"))){
                    String expDate = StringUtil.obj2Str(partyCertInfoList.get(i).get("EXPDATE"));
                    partyCert.setExpDate(formatDateTime(expDate));
                }
                if(StringUtil.isNotEmptyOrNull(partyCertInfoList.get(i).get("STATUSDATE"))){
                    String statusDate = StringUtil.obj2Str(partyCertInfoList.get(i).get("STATUSDATE"));
                    partyCert.setStatusDate(formatDateTime(statusDate));
                }
                if(StringUtil.isNotEmptyOrNull(partyCertInfoList.get(i).get("STATUSCD"))){
                    partyCert.setStatusCd(StringUtil.obj2Str(partyCertInfoList.get(i).get("STATUSCD")));
                }
                if(StringUtil.isNotEmptyOrNull(partyCertInfoList.get(i).get("REMARK"))){
                    partyCert.setRemark(StringUtil.obj2Str(partyCertInfoList.get(i).get("REMARK")));
                }
                partyCerts.add(partyCert);
            }
            ecCustomer.setPartyCerts(partyCerts);
        }
        return ecCustomer;
    }

    /**
     * 获取账户信息
     */
    public ECAccount getECAccountInfo(String serialNumber,String lanId){

        Map<String,String> inMap = new HashMap<String,String>();
        inMap.put("serialNumber",serialNumber);
        inMap.put("lanId",lanId);
        Map<String,String> accountMap = qryCustInfoMapper.getAccountInfo(inMap);
        if(StringUtil.isEmptyOrNull(accountMap)){
            throw new RuntimeException("未查询到该账户信息，请核查查询信息是否正确");
        }
        ECAccount ecAccount = new ECAccount();
        if(StringUtil.isNotEmptyOrNull(accountMap.get("BUSINESSNBR"))){
            ecAccount.setBusinessNbr(StringUtil.obj2Str(accountMap.get("BUSINESSNBR")));
        }
        if(StringUtil.isNotEmptyOrNull(accountMap.get("ACCOUNTID"))){
            ecAccount.setId(StringUtil.obj2Str(accountMap.get("ACCOUNTID")));
        }else{
            throw new RuntimeException("账户ID查询出错，请核查");
        }
        if(StringUtil.isNotEmptyOrNull(accountMap.get("ACCOUNTNAME"))){
            ecAccount.setName(StringUtil.obj2Str(accountMap.get("ACCOUNTNAME")));
        }
        if(StringUtil.isNotEmptyOrNull(accountMap.get("CITY"))){
            ecAccount.setCity(StringUtil.obj2Str(accountMap.get("CITY")));
        }
        if(StringUtil.isNotEmptyOrNull(accountMap.get("PROVINCE"))){
            ecAccount.setProvince(StringUtil.obj2Str(accountMap.get("PROVINCE")));
        }
        return ecAccount;
    }

    /**
     * 获取用户信息
     * @param custId
     * @param accountId
     * @param serialNumber
     * @param lanId
     * @return
     */
    public List<ECProduct> getECProductInfos(String serialNumber,String accountId,String custId,String lanId){
        if(StringUtils.isEmpty(custId)&&StringUtils.isEmpty(accountId) &&StringUtils.isEmpty(serialNumber)){
            throw new RuntimeException("请至少输入一个查询条件");
        }
        List<ECProduct> ecProductList = new ArrayList<ECProduct>();
        Map<String,String> inMap = new HashMap<String,String>();
        Map<String,String> selectAccountMap = new HashMap<String,String>();

       //通过用户号码或者客户ID查询用户信息
        if(StringUtil.isNotEmptyOrNull(serialNumber)){
            inMap.put("serialNumber",serialNumber);
            inMap.put("accountId",accountId);
            if(StringUtil.isNotEmptyOrNull(custId)){
                inMap.put("custId",custId);
            }
            inMap.put("lanId",lanId);
            ECProduct ecProduct = getECProduct(inMap);
            ecProductList.add(ecProduct);
        }else if(StringUtil.isNotEmptyOrNull(accountId)&&StringUtil.isEmptyOrNull(serialNumber)){
            selectAccountMap.put("accountId",accountId);
            List<Map<String,String>> prodInstIdList = qryCustInfoMapper.getAccountIdByProdInstId(selectAccountMap);
            int prodInstIdListSize = prodInstIdList.size();
            if(prodInstIdListSize>0){
                for(int a=0;a<prodInstIdListSize;a++){
                    String prodInstId = StringUtil.obj2Str(prodInstIdList.get(a).get("PROD_INST_ID"));
                    //通过 prod_inst_id 获取用户号码信息
                    Map<String,String> prodInstAccNbrMap = new HashMap<String,String>();
                    prodInstAccNbrMap.put("prodInstId",prodInstId);
                    Map<String,String> outMap = qryCustInfoMapper.selectProdInstAccNbrById(prodInstAccNbrMap);
                    if(StringUtil.isNotEmptyOrNull(outMap)){
                        String accNbr = StringUtil.obj2Str(outMap.get("ACC_NBR"));
                        inMap.put("serialNumber",accNbr);
                        if(StringUtil.isNotEmptyOrNull(custId)){
                            inMap.put("custId",custId);
                        }
                        inMap.put("accountId",accountId);
                        inMap.put("lanId",lanId);
                        ECProduct ecProduct = getECProduct(inMap);
                        ecProductList.add(ecProduct);
                    }
                }
            }
        }else{
            //通过custId获取用户号码
            inMap.put("custId",custId);
            inMap.put("lanId",lanId);
            inMap.put("accountId","");
            List<String> accNbrList = qryCustInfoMapper.getProdInstAccNbrByCustId(inMap);
            int accNbrListSize = accNbrList.size();
            if(accNbrListSize>0){
                for(int i=0;i<accNbrListSize;i++){
                    String accNbr = accNbrList.get(i);
                    inMap.put("serialNumber",accNbr);
                    ECProduct ecProduct = getECProduct(inMap);
                    ecProductList.add(ecProduct);
                }
            }

        }
        return ecProductList;
    }


    /**
     * 通过用户号码、客户ID查询出来的用户信息进行封装
     * @param inMap 必须包含 serialNumber、lanId 和 accountId，accountId可以为空
     * @return
     * @throws ParseException
     */
    public ECProduct getECProduct(Map<String,String> inMap){

        Map<String, String> selectAccountMap = new HashMap<String, String>();
        ECProduct ecProduct = new ECProduct();
        String accountId = "";
        if (StringUtil.isNotEmptyOrNull(inMap.get("accountId"))) {
            accountId = StringUtil.obj2Str(inMap.get("accountId"));
        }
        Map<String, String> productInfoMap = qryCustInfoMapper.getUserInfo(inMap);
        if (StringUtil.isNotEmptyOrNull(productInfoMap)) {
            String prodInstId = "";
            if (StringUtil.isNotEmptyOrNull(productInfoMap.get("ID"))) {
                prodInstId = StringUtil.obj2Str(productInfoMap.get("ID"));
                ecProduct.setId(prodInstId);
            } else {
                throw new RuntimeException("接入类产品实例ID查询异常");
            }

            if (StringUtil.isNotEmptyOrNull(productInfoMap.get("PROVINCE"))) {
                String province = StringUtil.obj2Str(productInfoMap.get("PROVINCE"));
                ecProduct.setProvince(province);
            }
            if (StringUtil.isNotEmptyOrNull(productInfoMap.get("CITY"))) {
                String city = StringUtil.obj2Str(productInfoMap.get("CITY"));
                ecProduct.setCity(city);
            }
            if (StringUtil.isNotEmptyOrNull(productInfoMap.get("SERIALNUMBER"))) {
                String serialNumber0 = StringUtil.obj2Str(productInfoMap.get("SERIALNUMBER"));
                ecProduct.setSerialNumber(serialNumber0);
            } else {
                throw new RuntimeException("用户号码查询异常");
            }
            if (StringUtil.isNotEmptyOrNull(productInfoMap.get("PRODUCTNBR"))) {
                String productnbr = StringUtil.obj2Str(productInfoMap.get("PRODUCTNBR"));
                ecProduct.setProductNbr(productnbr);
            } else {
                throw new RuntimeException("产品编码查询异常");
            }
            if (StringUtil.isNotEmptyOrNull(productInfoMap.get("PRODUCTNAME"))) {
                String productNaame = StringUtil.obj2Str(productInfoMap.get("PRODUCTNAME"));
                ecProduct.setProductName(productNaame);
            } else {
                throw new RuntimeException("产品名称查询异常");
            }
            if (StringUtil.isNotEmptyOrNull(productInfoMap.get("CUSTID"))) {
                String custId0 = StringUtil.obj2Str(productInfoMap.get("CUSTID"));
                ecProduct.setCustId(custId0);
            } else {
                throw new RuntimeException("客户ID查询异常");
            }

            //校验账户ID是否正确
            if (StringUtil.isNotEmptyOrNull(accountId)) {
                selectAccountMap.put("prodInstId", prodInstId);
                selectAccountMap.put("accountId", accountId);
                List<Map<String, String>> accountIdList = qryCustInfoMapper.getAccountIdByProdInstId(selectAccountMap);
                int accountIdListSize = accountIdList.size();
                if (accountIdListSize > 0) {
                    ecProduct.setAccountId(accountId);
                } else {
                    throw new RuntimeException("查询信息有误，请核实");
                }
            } else {
                selectAccountMap.put("prodInstId", prodInstId);
                //通过接入类产品实例ID获取账户的信息——取第一个账户信息
                List<Map<String, String>> accountIdList = qryCustInfoMapper.getAccountIdByProdInstId(selectAccountMap);
                int accountListSize = accountIdList.size();
                if (accountListSize > 0) {
                    String accountId0 = StringUtil.obj2Str(accountIdList.get(0).get("ACCOUNT_ID"));
                    ecProduct.setAccountId(accountId0);
                } else {
                    throw new RuntimeException("账户ID查询异常");
                }
            }
            if (StringUtil.isNotEmptyOrNull(productInfoMap.get("STARTDATE"))) {
                String startDate0 = StringUtil.obj2Str(productInfoMap.get("STARTDATE"));
                String startDate = formatDateTime(startDate0);
                ecProduct.setStartDate(startDate);
            }
            if (StringUtil.isNotEmptyOrNull(productInfoMap.get("ENDDATE"))) {
                String endDate0 = StringUtil.obj2Str(productInfoMap.get("ENDDATE"));
                String endDate = formatDateTime(endDate0);
                formatDateTime(endDate);
                ecProduct.setEndDate(endDate);
            }
            if (StringUtil.isNotEmptyOrNull(productInfoMap.get("ADDRESS"))) {
                String address = StringUtil.obj2Str(productInfoMap.get("ADDRESS"));
                ecProduct.setAddress(address);
            }
            if (StringUtil.isNotEmptyOrNull(productInfoMap.get("ACCNBRTYPECD"))) {
                String accNbrTypeCd = StringUtil.obj2Str(productInfoMap.get("ACCNBRTYPECD"));
                if(StringUtil.isEqual(accNbrTypeCd,"2")){
                    String payCycle = StringUtil.obj2Str(qryCustInfoMapper.getPayCycle(prodInstId));
                    ecProduct.setPayCycle(payCycle);
                }
            }
            List<Map<String, String>> userAttrInfoList = qryCustInfoMapper.getUserAttrs(prodInstId);
            int userAttrInfoListSize = userAttrInfoList.size();
            if (userAttrInfoListSize > 0) {
                List<Attribute> attributes = new ArrayList<Attribute>();
                for (int a = 0; a < userAttrInfoListSize; a++) {
                    Attribute attribute = new Attribute();
                    if (!StringUtils.isEmpty(userAttrInfoList.get(a).get("ATTRID"))) {
                        String attrId = String.valueOf(userAttrInfoList.get(a).get("ATTRID"));
                        attribute.setAttrId(attrId);
                    }
                    if (!StringUtils.isEmpty(userAttrInfoList.get(a).get("ATTRNAME"))) {
                        String attrName = String.valueOf(userAttrInfoList.get(a).get("ATTRNAME"));
                        attribute.setName(attrName);
                    }
                    if (!StringUtils.isEmpty(userAttrInfoList.get(a).get("ATTRVALUE"))) {
                        String attrValue = String.valueOf(userAttrInfoList.get(a).get("ATTRVALUE"));
                        attribute.setValue(attrValue);
                    }
                    attributes.add(attribute);
                }
                ecProduct.setAttributes(attributes);
            }
        }else{
            throw new RuntimeException("未查询到用户信息，请核查查询信息");
        }
        return ecProduct;
    }

    /**
     * 获取集团要求的date-time 格式
     * @param dateTime
     * @return
     */
    public String formatDateTime(String dateTime){
        if(StringUtil.isNotEmptyOrNull(dateTime)&&dateTime.length()>11){
            String ymd = dateTime.substring(0,10)+"T";
            String hms = dateTime.substring(11)+".000Z";
            dateTime = ymd+hms;
        }
        return dateTime;
    }
}